%matplotlib inline
import os
import sys
import time
import hashlib
import inspect
import traceback
import json
from collections import OrderedDict
import numpy as np
import pandas as pd
import yaml
from PIL import Image
from PIL import ImageFile
from PIL import ImageOps
from PIL.ImageStat import Stat
from PIL import TiffImagePlugin as tip
import matplotlib as mpl
from matplotlib import cm
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.pyplot as pyplot
fmf_src = '../../FlyingMachineFractal/src/'
sys.path.insert(0, fmf_src)
from graphic_utility import *
sys.path.insert(0, '../src')
from complex_edges import *
"""
find some images
"""
im_type_list = ['.tif', '.tiff']
im_dir = '/Users/mojo/pictures/Explorations/tmpProcessTank/'
f_list = []
for maybef in os.listdir(im_dir):
_, f_ext = os.path.splitext(maybef)
maybefull = os.path.join(im_dir, maybef)
if os.path.isfile(maybefull) and f_ext in im_type_list:
f_list.append((maybef, maybefull))
im_dict = OrderedDict(f_list)
enu_dict = {k: v for k, v in enumerate(im_dict.items())}
# for kn in range(len(enu_dict)):
# print('%3i'%(kn), os.path.isfile(enu_dict[kn][1]), '\t', enu_dict[kn][0])
""" Bombers:
[56, 12, 17, 24, 26, 32, 34, 51, 56]
Besties:
[9, 10, 14, 16, 22, 23, 25, 33, 35, 39, 40, 41, 42, 46, 49, 50,
52, 54, 57, 58, 59, 68, 69, 70, 74, 75, 77, 78, 79]
Maybes:
[55]
"""
im_no = 9
im = Image.open(enu_dict[im_no][1])
print(enu_dict[im_no][0], im.size)
display(im)
im_gray = im.convert('L')
im_gray_array = np.array(im_gray)
print(im_gray.size)
print('original as grayscale')
display(im_gray)
n = 1
Z = im_to_Z(im_gray_array, n)
display(complex_magnitude_image(Z))
im_inv = ImageOps.invert(complex_mat_to_im(Z))
display(im_inv)
destination_dir = '../images'
file_type_ext = '.png'
good_edge_images = [10, 14, 23, 40, 41, 46, 52, 54, 55, 57, 68, 70, 75]
n = 1
for b_name in good_edge_images:
t0 = time.time()
im = Image.open(enu_dict[b_name][1])
im_gray = im.convert('L')
im_gray_array = np.array(im_gray)
Z = im_to_Z(im_gray_array, n)
im_inv = ImageOps.invert(complex_mat_to_im(Z))
src_file_name = enu_dict[b_name][0]
s_f_name_root, f_ext = os.path.splitext(src_file_name)
out_file_name = 'z_conv_' + s_f_name_root + file_type_ext
out_file_name = os.path.join(destination_dir, out_file_name)
im_inv.save(out_file_name)
print('\n\ntt: %0.3f s'%(time.time() - t0), b_name, src_file_name, im.size)
display(im_inv)
destination_dir = '../images'
os.listdir(destination_dir)